Інформаційна система комп`ютерного клубу

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство освіти і науки України

Харківський національний університет радіоелектроніки

Кафедра інформатики

Пояснювальна записка

до курсової робота

з дисципліни

"Організація баз даних та інформаційних систем"

Тема: "Інформаційна система комп'ютерного клубу"

Виконав: ст. гр. xxxxxx
xxxxxxx
Перевірила:
Робота захищена з оцінкою:
Харків 2008

РЕФЕРАТ

Метою даного курсового проекту є розробка актуальною, автоматизованої інформаційно-довідкової системи зберігання та обробки інформації довідкової системи комп'ютерного клубу, яка сприяла б спрощенню адміністрування комп'ютера в клубі, могла вести спостереження за кожним комп'ютером, гравцем, адміністратором, а так само знаходити необхідні дані при мінімальних витратах часу. Курсова робота складається з вступу, чотирьох частин, висновків, списку літератури, що містить _ джерел. Містить _ сторінки, _ малюнків, _ таблиць, _ SQL запитів, _ додатки.

У вступі описується область застосування завдання і перераховані існуючі методи її вирішення в рамках єдиного комплексу, де інформаційною основою служить використання концепції баз даних, реалізація якої в середовищі реляційних моделей вважається перспективною. У курсовій роботі прийнятий метод розв'язання задачі від побудови инфологической схеми предметної області, яка потім відображається в логічну схему бази даних з наступною її оптимізацією (нормалізацією).

Практична реалізація виконана з використанням СУБД ACCESS і Delphi. Наведено програми побудови відносин і запитів в середовищі реляційних моделей з використанням мови SQL.

У висновку підводиться підсумок виконаної роботи та дається критичний аналіз отриманих результатів. Додаток містить роздруківки загального вигляду форм.

Ключові слова і вирази:
БАЗАДА нних, ДІАГРАМА СУТНІСТЬ-ЗВ'ЯЗОК, СТАВЛЕННЯ, ДАТАЛОГІЧЕСКАЯ МОДЕЛЬ, Инфологическая модель, ПОТЕНЦІЙНІ КЛЮЧІ, посилальної цілісності, АТРИБУТ, КОРТЕЖ, ФУНКЦІОНАЛЬНА ЗАЛЕЖНІСТЬ, ПЕРВИННИЙ КЛЮЧ, ЗОВНІШНІЙ КЛЮЧ, НОРМАЛИЗАЦИЯ, номально ФОРМИ, МОВА ЗАПИТІВ, СУБД, COM-технології, DELPHI .

ЗМІСТ

Завдання
Календарний план
РЕФЕРАТ
ВСТУП
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ
1.1Построеніе инфологической моделі предметної області методом ER-діаграми
1.2Опісаніе діаграми «сутність-зв'язок»
2 ПОСТАНОВКА ЗАДАЧІ
3 РОЗРОБКА СХЕМИ БАЗИ ДАНИХ
3.1Опісаніе логічної схеми бази даних
4 РОЗРОБЛЕННЯ ПРОЕКТУ ПРОГРАМИ
4.1Опісаніе даних
4.2 Створення відносин БД за допомогою мови SQL
4.3 Заповнення бази даних
4.4 Створення запитів до бази даних комп'ютерного клубу
4.5 Створення звітів по базах даних за допомогою програм Office
4.5.1 Створення генерації звітів за допомогою Microsoft Excel
4.5.1 Створення звіту за допомогою Microsoft Word
ВИСНОВОК
СПИСОК ЛІТЕРАТУРИ
ДОДАТОК А
ДОДАТОК Б
ДОДАТОК Б

Введення
У сучасному світі інформаційних технологій інформаційно-довідкові системи з використанням концепцій баз даних знайшли широке застосування. Будь-яка галузь не може розвиватися без співпраці з інформатикою, так як підприємствам необхідно обробляти величезну кількість різноманітної інформації, і без застосування та інформаційно-довідкових систем це було б неможливим. Відсутність сховища даних та можливості організації швидкого до них доступу, пошуку і їх обробки значно ускладнило б роботу і розвиток великих підприємств. Ще недавно паперової базою даних можна було обійтися. Але сьогодні без електронних баз даних, не обійтися, тому що процес покращення життя суспільства вимагає збільшення обсягу необхідної інформації щорічно на 5-7%. А вже через десять обсяг необхідної інформації подвоїться.
Занесення бази даних на ПК дає велику перевагу вже для однокористувальницької системи - це компактність, швидкість, низькі трудовитрати і актуальність.
Бази даних - це комп'ютеризована система зберігання записів, тобто комп'ютеризована система, призначення якої зберігати інформацію, надаючи користувачам засоби її вилучення ідентифікації.
Оскільки БД (база даних) - сховище визначено міста інформації, то для управління або аналізу їх вмісту застосовується програмне забезпечення, що дозволяє встановити зв'язок між користувачами системи та фізичними записами даних. Таким програмним забезпеченням є СУБД - системи управління базами даних. Основне завдання СУБД - надання можливості користувачеві бази даних працювати з нею, не вникаючи з деталі її архітектури.
Термін СУБД так само часто використовуються у відношенні конкретних програмних продуктів, одним з яких є Microsoft Access, який і був використаний при виконанні даної курсової роботи.
Цей програмний продукт пропонує механізм формування таблиць і досить простий у застосуванні, забезпечуючи цим користувачеві - непрофесіоналові комфорт при роботі з базою даних.
База даних забезпечує зберігання інформації, а також зручний і швидкий доступ до даних. Вона являє собою сукупність даних різного характеру, організованих за певними правилами.
Використовується так само сучасні технології програмування, що базуються на технології COM і дозволяють використовувати додатки Microsoft Office в якості серверів автоматизації.
COM є платформно-незалежної, об'єктно-орієнтованої технологією, що дозволяє створювати бінарні компоненти. Ці компоненти можна використовувати як локально, так і в розподіленому мережному оточенні. COM служить основою для: OLE (технологія складених документів), ActiveX-об'єктів та елементів управління ActiveX, DCOM, COM +.
На базі COM створено більшість новітніх продуктів (MS Office, MTS, ...) і технологій Windows (Automation, Drag & Drop, ...).
COM - це технологія, що дозволяє об'єктам взаємодіяти, незважаючи на кордони процесу чи машини, так само легко, як і об'єктів усередині одного процесу. COM забезпечує таку взаємодію, визначаючи, що єдиний шлях управління даними, асоційованими з об'єктом, лежить через інтерфейс об'єкту. Термін «інтерфейс», про який мова піде трохи нижче, означає реалізацію в коді COM-сумісного двійкового інтерфейсу, асоційованого з об'єктом.
Генерація звітів по базах даних за допомогою додатків Microsoft Office застосовується на практиці досить часто. Причиною цього є бажання користувачів отримувати звіти у вигляді файлу одного із стандартних форматів, мати можливість редагувати їх і обмінюватися ними з клієнтами і партнерами. Справа в тому, що наявні в комплекті поставки Delphi компоненти QuickReport мають досить обмеженими можливостями, пов'язаними зі створенням звітів в одному із стандартних форматів, і застосування замість них додатків Microsoft Office, як правило, вже наявних у компанії, нерідко краще набуття професійних генераторів звітів типу Crystal Reports (Crystal Decisions).
Таким чином, шляхом автоматизації додатків Microsoft Office ми можемо створювати складні звіти, що містять таблиці, діаграми, обчислювані значення, так само як і використовувати для цієї мети інші можливості Microsoft Office (наприклад, сервіси побудови зведених таблиць).

1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ
1.1 Побудова инфологической моделі предметної області методом ER-діаграми
Початковим кроком у проектуванні бази даних є постановка завдання, опис предметної області та побудові инфологической моделі даних, тобто моделі «сутність - зв'язок», відомої ще як діаграма Чена.
Вона допомагає логічного програмування РБД. У логічній схемі РБД семантика даних передається за допомогою первинних і зовнішніх ключів і функціональних залежностей. Для побудови діаграми сутність / зв'язок насамперед необхідно:
· Визначити дані, які будуть використовуватися РБД;
· Визначити безліч відносин у яких будуть пов'язані ці дані;
· Вивести правила цілісності і визначити зв'язку для роботи з відносинами;
ER-діаграма будується за допомогою таких основних правил:
· Властивість завжди пов'язане з одним певним ставленням, (якщо тільки відносини не є підлеглими загальному типу). У діаграмі властивості позначаються овалами;
· Якщо відношення має зв'язки, то між їх зв'язком повинна бути описана логічна прив'язка позначена ромбом. Відносини позначаються прямокутниками.
Всі зв'язку повинні бути обов'язково виду «один до багатьох» або «багато до одного».

Відносини в моделі сутність-зв'язок можуть мати тип один-до-одного, один-до-багатьох, багато-до-одного, багато-до-багатьох (для спрощення викладу далі передбачається, що всі відносини бінарні).

1.2 Опис діаграми «сутність-зв'язок» для інформаційної системи комп'ютерного клубу
Сильними об'єктами є Центр Даних, Комп'ютер, Послуги, Інфо гравця, Адміністратор, Модернізація, Пристрої.

Властивостями об'єкта Дані є Номер комп'ютера, Дата оренди, Час оренди, Тривалість, Код послуги, Гравець, Ціна, Адміністратор.

Властивостями об'єкта Комп'ютер є Номер комп'ютера, Платформа, Частота, Монітор, Відеокарта, Жорсткий диск, Миша, Клавіатура, Навушники.

Властивостями об'єкта Послуги є - Номер Послуги, Назва, Тариф.

Властивостями об'єкта Інфо Гравця є - Гравець, ПІБ, Адреса, Команда.

Властивостями об'єкта Адміністратор є - Адміністратор, ПІБ, Адреса, Дохід.

Инфологическая (ER-діаграма) предметної області показана на рис. 1.1


2 ПОСТАНОВКА ЗАДАЧІ
Розробляється інформаційна система комп'ютерного ігрового клубу повинна бути зручною у використанні, як для Адміністратора, обслуговуючого комп'ютер, так і бухгалтера, директора клубу, податкового інспектора, а так само будь-якого охочого гравця. Вона дає можливість отримати повну інформацію про точну дату, час, що надається службою для певного комп'ютера, відвідувача або обслуговуючого адміністратора.
Система повинна допомогти працівникам комп'ютерного клубу у веденні звітів про оренду комп'ютерів відвідувачами, у пошуку потрібної інформації про гравців, веденні статистики відвідування певного гравця. Також, допомагає адміністратору без втрати часу визначити дату чергування, денну і загальний прибуток.
Дана інформаційна система повинна вирішувати задачу про знаходження відповідного комп'ютера відповідного рівня в залежності від послуги, яку вибирає відвідувач.
Система дає можливість адміністратору вести облік про складові пристроях комп'ютера, що дозволяє проводити своєчасну модернізацію, а так само підрахунок витрат на неї.
При побудові інформаційної системи відомо наступне: комп'ютер, його платформа, частота, монітор, встановлені на нього жорсткий диск, відеокарта, маніпулятори, навушники, адміністратор і інформація про нього, послуги, їх опис і тариф. Дані, занесені в таблицю, з часом можуть оновлюватися.

3 РОЗРОБКА СХЕМИ БАЗИ ДАНИХ
3.1 Опис логічної схеми бази даних
У представленої базі даних сім відносин. Всі відносини знаходяться в НФБК, так як кожна домінанта (атрибут функціонально визначає інший атрибут) є потенційним ключем.
Опис логічної схеми бази даних:
Відношення «Дані» має атрибути: Номер_компа, Дата_аренди, Время_аренди, Тривалість, Код_услугі, Гравець, Ціна, Адмін.
Відношення «Послуги» має атрибути: Номер_услугі, Назва, Тариф.
Відношення «Інфо гравця» має атрибути: Гравець, ПІБ, Адреса, Команда.
Відношення «Адмін» має атрибути: Адмін, ПІБ, Адреса, Ставка.
Відношення «Девайс» має атрибути: Пристрій, Магазин, Фірма, Ціна.
Відношення «Комп» має атрибути: Номер_компа, Платформа, MHz, Monitor, Video, Hdd, Mouse, Keyboard, Headphones.
Схема даних в Microsoft Access зображена на Рис. 3.1

4 РОЗРОБЛЕННЯ ПРОЕКТУ ПРОГРАМИ
4.1 Опис даних БД
У таблиці 4.1 наведено опис даних БД «Робота клубу». Таблиця 4.1 - Опис даних БД «Робота клубу»
Елемент даних
Опис
Об'єкт
Тип даних
Умова на значеіе
Номер_компа
Номер комп'ютера
Центр даних
Текстовий
Обов'язкове (ключ)
Дата_Аренди
Дата оренди комп'ютера
Центр даних
Дата / час
Обов'язкове
(Ключ)
Время_Аренди
Час оренди комп'ютера
Центр даних
Дата / час
Обов'язкове
(Ключ)
Тривалість
Годинники оренди комп'ютера
Центр даних
Числовий
Обов'язкове
Код_Услугі
Код послуги
Центр даних
Текстовий
Обов'язкове
Гравець
Відвідувач клубу
Центр даних
Текстовий
Обов'язкове
Ціна
Вартість
Центр даних
Грошовий
Обов'язкове
Адмін
Адміністратор
Центр даних
Текстовий
Обов'язкове (ключ)
Номер_услугі
Кодовий номер послуги
Послуги
Текстовий
Обов'язкове (ключ)
Назва
Опис послуги
Послуги
Текстовий
Обов'язкове
Тариф
Вартість послуги
Послуги
Грошовий
Обов'язкове
(Ключ)
Адмін
«Нікнейм» адміністратора
Адмін
Текстовий
Обов'язкове
(Ключ)
ПІБ
ПІБ
Адмін
Текстовий
Обов'язкове
Адреса
Адреса
Адмін
Текстовий
Обов'язкове
Ставка
Зарплата
Адмін
Текстовий
Обов'язкове
Гравець
«Нікнейм» гравця
Інфо гравця
Текстовий
Обов'язкове (ключ)
ПІБ
ПІБ гравця
Інфо гравця
Текстовий
Обов'язкове
Адреса
Адреса гравця
Інфо гравця
Текстовий
Обов'язкове
Команда
Команда гравця
Інфо гравця
Текстовий
Необов'язкове
4.2 Створення відносин за допомогою мови SQL
У мові SQL оператором створення таблиць є оператор CREATE TABLE.
Нижче наводиться побудова таблиць БД «Комп'ютерний клуб» за допомогою оператора CREATE TABLE.

CREATE TABLE Адмін

(Адмін VARCHAR (50) NOT NULL,
ПІБ VARCHAR (50) NOT NULL,
Адреса VARCHAR (50) NOT NULL,
Ставка NUMBER NOT NULL,
PRIMARY KEY (Адмін),
FOREIGN KEY (Адмін),
REFERENCES Центр даних,
ON DELETE CASCADE,
ON UPDATE CASCADE)

CREATE TABLE Інфо гравця

(Гравець VARCHAR (50) NOT NULL,
ПІБ VARCHAR (50) NOT NULL,
Адреса VARCHAR (50) NOT NULL,
Команда VARCHAR (50) NOT NULL,
PRIMARY KEY (Гравець),
ON DELETE CASCADE,
ON UPDATE CASCADE)

CREATE TABLE Девайс

(Пристрій VARCHAR (50) NOT NULL,
Магазин VARCHAR (50) NOT NULL,
Фірма VARCHAR (50) NOT NULL,
Ціна VARCHAR (50) NOT NULL,
PRIMARY KEY (Пристрій),
FOREIGN KEY (Пристрій),
REFERENCES Модернізація,
ON DELETE CASCADE,
ON UPDATE CASCADE)

CREATE TABLE Послуги

(Номер_услугі VARCHAR (10) NOT NULL,
Назва VARCHAR (50) NOT NULL,
Тариф MONEY NOT NULL,
PRIMARY KEY (Номер_услугі),
ON DELETE CASCADE,
ON UPDATE CASCADE)

CREATE TABLE Комп

(Номер_компа VARCHAR (50) NOT NULL,
Платформа VARCHAR (50) NOT NULL,
MHz VARCHAR (50) NOT NULL, Monitor
Video VARCHAR (50) NOT NULL,
Hdd VARCHAR (50) NOT NULL,
Mouse VARCHAR (50) NOT NULL,
Keyboard VARCHAR (50) NOT NULL,
Headphones VARCHAR (50) NOT NULL,
PRIMARY KEY (Номер_компа),
ON DELETE CASCADE,
ON UPDATE CASCADE)

CREATE TABLE Центр даних

(Номер_компа VARCHAR (50) NOT NULL,
Дата_аренди DATE NOT NULL,
Время_аренди DATE NOT NULL,
Тривалість NUMBER NOT NULL,
Код_услугі VARCHAR (50) NOT NULL,
Гравець VARCHAR (50) NOT NULL,
Ціна MONEY NOT NULL,
Адмін VARCHAR (50) NOT NULL,
PRIMARY KEY (Номер_компа, Дата_аренди, Время_аренди, Тривалість, Адмін),
FOREIGN KEY (Код_услугі),
REFERENCES Послуги,
ON DELETE CASCADE,
ON UPDATE CASCADE,
FOREIGN KEY (Гравець)
REFERENCES Інфо гравця,
ON DELETE CASCADE,
ON UPDATE CASCADE,
FOREIGN KEY (Номер_компа),
REFERENCES Комп,
ON DELETE CASCADE,
ON UPDATE CASCADE,
)
4.3 Заповнення бази даних
Дані заносяться з використанням форм) наведених у додатку. При занесенні даних слід звернути увагу на підтримку обмежень цілісності по первинних і зовнішніх ключів відносин згідно зі схемою бази даних, наведеної на рис.4.2.
Рекомендується спочатку встановити зв'язки у схемі бази даних, а потім заносити дані, що запобіжить помилки, що виникають при спробі внести дані, що порушують обмеження цілісності в базу даних, і пов'язані з їх ідентифікацією.
Особливу увагу слід приділити занесенню NULL-значень. У теоретичному плані NULL-значення заборонені (значення атрибуту атомарний), проте вимоги практики зумовили їх використання в комерційних пакетах. Слід враховувати різницю в описі NULL-значення в кожному з них. У проекті, що розробляється NULL-значення задавалися засобами пакета ACCESS.

4.4 Створення запитів до бази даних комп'ютерний клуб
В основному запити використовуються для аналізу даних. У цій роботі були створені такі запити:
1. Дані про чергування адміна:
SELECT Данние.Дата_аренди, Данние.адмін
FROM Комп INNER JOIN (Послуги INNER JOIN ([Інфо гравця] INNER JOIN Дані ON [Інфо гравця]. Гравець = Данние.Ігрок) ON Услугі.Номер_услугі = Данние.Код_услугі) ON Комп.Номер_компа = Данние.Номер_компа
WHERE (((Данние.Дата_аренди) = [Введіть дату оренди]));
2.Доход в задану дату.
SELECT Sum ([Центр даних]. Ціна) AS Сума
FROM [Центр даних]
WHERE ((([Центр даних]. Дата_аренди) = [Введіть дату оренди]));
3.Вивесті гравців, які не перебувають у командах
SELECT [Інфо гравця]. Гравець, [Інфо гравця]. ПІБ, [Інфо гравця]. Адреса
FROM [інфо гравця]
WHERE [Інфо гравця]. Команда Is Null;
4.Вивесті інформацію, якщо зароблено більше 5 грн.
SELECT [Центр даних]. Гравець, [Центр даних]. Ціна, [Центр даних]. Номер_компа, [Центр даних]. Дата_аренди, [Центр даних]. Код_услугі, [Центр даних]. Адмін
FROM [Центр даних]
GROUP BY [Центр даних]. Гравець, [Центр даних]. Ціна, [Центр даних]. Номер_компа, [Центр даних]. Дата_аренди, [Центр даних]. Код_услугі, [Центр даних]. Адмін
HAVING ((([Центр даних]. Ціна)> 5));
5.Вивесті дані про те, коли і на якому комп'ютері користуватися певними послугами.
SELECT Услугі.Названіе, [Центр даних]. Номер_компа, [Центр даних]. Дата_аренди, [Центр даних]. Время_аренди, [Центр даних]. Тривалість
FROM Комп INNER JOIN (Послуги INNER JOIN ([Інфо гравця] INNER JOIN [Центр даних] ON [Інфо гравця]. Гравець = [Центр даних]. Гравець) ON Услугі.Номер_услугі = [Центр даних]. Код_услугі) ON Комп.Номер_компа = [Центр даних]. Номер_компа
WHERE (((Услугі.Номер_услугі) = [Код послуги]))
ORDER BY [Центр даних]. Дата_аренди;
6.Вивесті суму, зароблену певним адміністратором
SELECT Sum ([Центр даних]. Ціна) AS Сума
FROM [Центр даних]
WHERE ((([Центр даних]. Адмін) = [Адміністратор]));
7.Вивесті дані про роботу клубу, відсортувати за датою і гравцеві
SELECT [Центр даних]. Номер_компа, [Центр даних]. Дата_аренди, [Центр даних]. Время_аренди, [Центр даних]. Тривалість, [Центр даних]. Код_услугі, [Центр даних]. Гравець, [Центр даних]. Ціна, [Центр даних]. Адмін
FROM [Центр даних]
ORDER BY [Центр даних]. Дата_аренди, [Центр даних]. Гравець;
8.Вивесті інформацію про саму пізньої оренді комп'ютера
SELECT MAX ([центр даних]. Время_аренди) AS Час
FROM [центр даних];
9.Вивесті інформацію про ранній оренді комп'ютера
SELECT MIN ([центр даних]. Время_аренди) AS Час
FROM [центр даних];
10.Вивесті дані про оренду комп'ютера в заданий час
SELECT [Центр даних]. Время_аренди, [Центр даних]. Код_услугі, [Центр даних]. Гравець, [Центр даних]. Номер_компа
FROM Комп INNER JOIN (Послуги INNER JOIN ([Інфо гравця] INNER JOIN [Центр даних] ON [Інфо гравця]. Гравець = [Центр даних]. Гравець) ON Услугі.Номер_услугі = [Центр даних]. Код_услугі) ON Комп.Номер_компа = [Центр даних]. Номер_компа
WHERE ((([Центр даних]. Время_аренди) = [Введіть час оренди]));
11.Вивесті дані про оренду комп'ютера в задану дату.
SELECT [Центр даних]. Дата_аренди, [Центр даних]. Код_услугі, [Центр даних]. Гравець, [Центр даних]. Номер_компа
FROM Комп INNER JOIN (Послуги INNER JOIN ([Інфо гравця] INNER JOIN [Центр даних] ON [Інфо гравця]. Гравець = [Центр даних]. Гравець) ON Услугі.Номер_услугі = [Центр даних]. Код_услугі) ON Комп.Номер_компа = [Центр даних]. Номер_компа
WHERE ((([Центр даних]. Дата_аренди) = [Введіть дату оренди]));
12.Вивесті дані про послуги
SELECT Услугі.Номер_услугі, Услугі.Названіе, послуги.Тарифи
FROM Комп INNER JOIN (Послуги INNER JOIN ([Інфо гравця] INNER JOIN [Центр даних] ON [Інфо гравця]. Гравець = [Центр даних]. Гравець) ON Услугі.Номер_услугі = [Центр даних]. Код_услугі) ON Комп.Номер_компа = [Центр даних]. Номер_компа
GROUP BY Услугі.Номер_услугі, [Центр даних]. Код_услугі, Услугі.Названіе, послуги.Тарифи
HAVING (("номер_компа" = "номер_компа"));
4.5 Створення звітів по базах даних за допомогою програм Office
Створене додаток повинен дозволяти створити звіти по базі даних club.mdb, що входить в комплект стандартної поставки пакету Microsoft Office.
4.5.1 Створення звіту за допомогою Microsoft Word. Відкрийте новий додаток в Delphi
Помістити на форму компонент TADOConection, два компоненти TADODataSet і три компоненти TButton (рис.4.3). Властивостями Caption і Name присвоїти значення з таблиці 1.
Таблиця 4.1
Компонент
Властивість Caption
Властивість Name
Tbutton1
Звіт з використанням MS Word
Report_Word
Tbutton2
Звіт з використанням MS Excel
Report_Excel
Властивості ConnectionString об'єкта TADODataSet встановити значення, яке пов'язувало б його з базою даних club.mdb.
Оголосити глобальні змінні для об'єктів Application, Document, Range і Table:
Var Forml: TForm1;
/ / Range і Table
Wd, Doc, Rng, Tbl: Variant;
Властивостями CommandType і CommandText компонентів присвоїти значення з таблиці 4.2.
Таблиця 4.2
Компонент
Властивість CommandType
Властивість CommandText
TADODataSet1
cmdText
Select КодКліента, Назва, Місто From Країни
Реалізовуємо генерацію табличного звіту в обробнику події OnClick компоненту Buttonl:
procedure TForm1.Report_WordClick (Sender: TObject);
var I, Rcnt: integer;
begin
/ / Відкриваємо базу даних і підраховуємо кількість записів
ADODataSet1.Open;
Rcnt: = ADODataSet1.RecordCount;
/ / Запускаємо MS Word
wd: = CreateOleObject ('Word.Application');
/ / Відображаємо на екрані вікно MS Word
wd.Visible: = True;
/ / Створюємо новий документ
wd.Documents.Add;
Doc: = wd.Documents.Item (1);
/ / Додаємо новий абзац
Doc.Paragraphs.Add;
/ / Міняємо його стиль
Doc.Paragraphs.Item (1). Style: = 'Заголовок 1';
/ / Створюємо заголовок звіту
Rng: = Doc.Range (0);
Rng.InsertBefore ('Центр даних');
/ / Створюємо заголовки колонок
Doc.Paragraphs.Add;
Rng.InsertAfter ('Комп: Гравець: Дата: Тривалість: Код послуги: Адмін');
/ / Переміщаємося на перший запис набору даних
ADODataSet1.First;
for I: = 1 to Rcnt do begin
/ / Додаємо новий абзац
Doc.Paragraphs.Add;
/ / Додаємо поля з поточного запису в новий абзац
Rng.InsertAfter (ADODataSet1.Fields [0]. AsString +':'+
ADODataSet1.Fields [1]. ASString +':'+
ADODataSet1.Fields [2]. AsString +':'+
ADODataSet1.Fields [3]. ASString +':'+
ADODataSet1.Fields [4]. ASString +':'+
ADODataSet1.Fields [5]. ASString);
ADODataSet1.Next;
end;
/ / Перетворюємо текст у таблицю
Rng: = Doc.Range (Doc.Paragraphs.Item (3). Range.Start, Doc.Paragraphs.Item (Rcnt +3). Range.End);
Tbl: = Rng.ConvertToTable (':', Rcnt, 6);
/ / Змінюємо розміри колонок таблиці
Tbl.Columns.Item (1). Width: = Tbl.Columns.Item (1). Width-30;
Tbl.Columns.Item (2). Width: = Tbl.Columns.Item (2). Width +20;
Tbl.Columns.Item (3). Width: = Tbl.Columns.Item (3). Width-3;
Tbl.Columns.Item (4). Width: = Tbl.Columns.Item (4). Width +20;
Tbl.Columns.Item (5). Width: = Tbl.Columns.Item (5). Width-5;
Tbl.Columns.Item (6). Width: = Tbl.Columns.Item (6). Width +5;
/ / Придушуємо висновок діагностичних повідомлень
Wd.DisplayAlerts: = False;
/ / Зберігаємо документ
Doc.SaveAs (D: \ SOT \ Custrep.doc ');
/ / Закриваємо Word і звільняємо ресурси
/ / Wd.Quit;
Wd: = Unassigned;
end;
Відкомпілюйте додаток і перевірте роботу кнопки «Звіт з використанням MS Word». При виконанні цього додатка створюється документ зі звітом по базi даний club.mdb (рис.4.4).
Пояснення до наведеного вище фрагменту коду.
По-перше, ми повинні створити копію Microsoft Word, зробити її видимою і створити новий документ.
wd: = CreateOleObject ('Word.Application');
/ / Відображаємо на екрані вікно MS Word
wd.Visible: = True;
/ / Створюємо новий документ
wd.Documents.Add;
Потім потрібно створити заголовок звіту і заголовки колонок майбутньої таблиці, додаючи відповідні абзаци і змінюючи їх стилі:
/ / Додаємо новий абзац
Doc.Paragraphs.Add;
/ / Міняємо його стиль
Doc.Paragraphs.Item (1). Style: = 'Заголовок 1';
/ / Створюємо заголовок звіту
Rng: = Doc.Range (0);
Rng.lnsertBefore (Центр даних ');
/ / Створюємо заголовки колонок
Doc.Paragraphs.Add;
Rng.InsertAfter ('Комп: Гравець: Дата: Тривалість: Код послуги: Адмін');
Потім слід, переміщаючись по записах набору даних, додати в документ рядки, які відповідають цим записам:
/ / Переміщаємося на перший запис набору даних
ADODataSet1.First;
for I: = 1 to Rcnt do begin
/ / Додаємо новий абзац
Doc.Paragraphs.Add;
/ / Додаємо поля з поточного запису в новий абзац
Rng.InsertAter (ADODataSet1.Fields [0]. AsString +':'+
ADODataSet1.Fields [1]. ASString +':'+
ADODataSet1.Fields [2]. AsString +':'+
ADODataSet1.Fields [3]. ASString +':'+
ADODataSet1.Fields [4]. ASString +':'+
ADODataSet1.Fields [5]. ASString);
ADODataSet1.Next;
end;
Далі ми перетворюємо набір рядків у таблицю Word і змінюємо ширину її колонок так, щоб коректно відобразити містяться в ній дані:
/ / Перетворюємо текс в таблицю
Rng: = Doc.Range (Doc.Paragraphs.Item (3). Range.Start, Doc.Paragraphs.Item (rcnt +3). Range.End); Tbl: = Rng.ConvertToTable (':', rcnt.3 );
/ / Змінюємо розміри колонок таблиці
Tbl.Columns.Item (1). Width: = Tbl.Columns.Item (1). Width-30;
Tbl.Columns.Item (2). Width: = Tbl.Columns.Item (2). Width +20;
Tbl.Columns.Item (3). Width: = Tbl.Columns.Item (3). Width-3;
Tbl.Columns.Item (4). Width: = Tbl.Columns.Item (4). Width +20;
Tbl.Columns.Item (5). Width: = Tbl.Columns.Item (5). Width-5;
Tbl.Columns.Item (6). Width: = Tbl.Columns.Item (6). Width +5; Тепер нам потрібно зберегти документ, придушивши при цьому виведення діагностичних повідомлень Word:
/ / Придушуємо висновок діагностичних повідомлень
Wd.DisplayAlerts: = False;
Чому потрібно позбутися від виведення діагностичних повідомлень? У загальному випадку програми, подібні Word, можна запускати віддалено, наприклад, за допомогою засобів DCOM або універсальних СОМ-клієнтів, доступ до яких здійснюється по протоколах TCP / IP або HTTP / HTTPS. У цьому випадку в користувача не буде можливості відповідати на запитання діалогових вікон Word - адже фізично він перебуває на іншому комп'ютері, крім того, деякі режими застосування DCOM такі, що користувальницький інтерфейс DCOM-сервера (включаючи обробку ним подій миші і клавіатури) може бути просто недоступний нікому з користувачів. У цьому випадку діалогове вікно, створене в оперативній пам'яті, отримає повідомлення про подію, пов'язаному з клацанням на одній з кнопок цього вікна, і не буде закрито, і в користувача створиться враження, що додаток «зависла».
І, нарешті, нам слід зберегти документ і звільнити ресурси:
/ / Зберігаємо документ
Doc.SaveAs ('D: \ SOT \ Custrep.doc');
/ / Закриваємо Word і звільняємо ресурси
Wd.Quit;
Wd: = Unassigned;
4.5.2 Створення генерації звітів за допомогою Microsoft Excel
Як і в попередньому випадку, нам слід також оголосити глобальні змінні для об'єктів Application, WorkBook і WorkSheet:
var
Forml: TForm1;
. . .
/ / Змінні для об'єктів Excel Application, WorkBook і WorkSheet
Xl, Wb, Ws: Variant;
Реалізуємо генерацію табличного звіту в обробнику події OnClick компоненту Button2:
procedure TForm1.Report_ExcelClick (Sender: TObject);
var I, Rcnt: integer;
begin
/ / Відкриваємо базу даних і підраховуємо кількість записів
ADODataSet1.Open;
Rcnt: = ADODataSet1.RecordCount;
/ / Запускаємо Microsoft Excel
Xl: = CreateOleObject ('Excel.Application');
/ / Відображаємо вікно Microsoft Excel
Xl.Visible: = True;
/ / Створюємо робочу книгу
Xl.WorkBooks.Add;
Wb: = XL.WorkBooks [1];
Ws: = Wb.WorkSheets [1];
Ws.Name: = 'Центр даних';
/ / Створюємо заголовок звіту
Ws.Cells [1,1]: = 'Центр даних';
Ws.Cells [1,1]. Font.Bold: = True;
Ws.Cells [1,1]. Font.Size: = 16;
Ws.Cells [2,1]: = 'Комп';
Ws.Cells [2,2]: = "Гравець";
Ws.Cells [2,3]: = 'Дата';
Ws.Cells [2,4]: = 'Тривалість';
Ws.Cells [2,5]: = 'Код послуги';
Ws.Cells [2,6]: = 'Адмін';
for I: = 1 to 6 do
Ws.Cells [2, i]. Font.Bold: = True;
/ / Переміщаємося на перший запис набору даних
ADODataSet1.First;
for I: = 1 to Rcnt do
begin
/ / Додаємо значення полів поточного запису в новий рядок
Ws.Cells [i +2,1]: = ADODataSet1.Fields [0]. AsString;
Ws.Cells [i +2,2]: = ADODataSet1.Fields [1]. AsString;
Ws.Cells [i +2,3]: = ADODataSet1.Fields [2]. AsString;
Ws.Cells [i +2,4]: = ADODataSet1.Fields [3]. AsString;
Ws.Cells [i +2,5]: = ADODataSet1.Fields [4]. AsString;
Ws.Cells [i +2,6]: = ADODataSet1.Fields [5]. AsString;
ADODataSet1.Next;
end;
/ / Змінюємо ширину колонок
Xl.Columns [1]. ColumnWidth: = Xl.Columns [1]. ColumnWidth +5;
Xl.Columns [2]. ColumnWidth: = Xl.Columns [2]. ColumnWidth +5;
Xl.Columns [3]. ColumnWidth: = Xl.Columns [3]. ColumnWidth +5;
Xl.Columns [4]. ColumnWidth: = Xl.Columns [4]. ColumnWidth +5;
Xl.Columns [5]. ColumnWidth: = Xl.Columns [5]. ColumnWidth +5;
Xl.Columns [6]. ColumnWidth: = Xl.Columns [6]. ColumnWidth +5;
/ / Придушуємо висновок діагностичних повідомлень
Xl.DisplayAlerts: = false;
/ / Зберігаємо документ
Wb.SaveAs ('D: \ SOT \ Custrer.xls');
/ / Закриваємо Excel і звільняємо ресурси
/ / Xl.Quit;
Xl: = Unassigned;
end;
Відкомпілюємо додаток і перевірте роботу кнопки «Звіт з використанням MS Excel». При виконанні цього додатка створюється документ зі звітом по базi даний club.mdb (рис.4.5).
Пояснення до наведеного вище фрагменту коду
По-перше, ми повинні створити копію Microsoft Excel, зробивши її видимої і створити нову робочу книгу:
/ / Запускаємо Microsoft Excel
Xl: = CreateOleObject ('Excel.Application');
/ / Відображаємо вікно Microsoft Excel
Xl.Visible: = True;
/ / Створюємо робочу книгу
Xl.WorkBooks.Add;
Wb: = XL.WorkBooks [1];
Ws: = Wb.WorkSheets [1];
Ws.Name: = 'Список клієнтів';
Потім потрібно створити заголовок звіту і заголовки колонок майбутньої таблиці, додаючи текст у відповідні комірки т змінюючи характеристики шрифту осередків:
/ / Створюємо заголовок звіту
Ws.Cells [1,1]: = 'Центр даних';
Ws.Cells [1,1]. Font.Bold: = True;
Ws.Cells [1,1]. Font.Size: = 16;
Ws.Cells [2,1]: = 'Комп';
Ws.Cells [2,2]: = "Гравець";
Ws.Cells [2,3]: = 'Дата';
Ws.Cells [2,4]: = 'Тривалість';
Ws.Cells [2,5]: = 'Код послуги';
Ws.Cells [2,6]: = 'Адмін';
for I: = 1 to 6 do
Ws.Cells [2, i]. Font.Bold: = True; Потім слід, переміщаючись по записах набору даних, додасть в документ рядки, які відповідають цим записам:
/ / Переміщаємося на перший запис набору даних
ADODataSet1.First;
for I: = 1 to Rcnt do
begin
/ / Додаємо значення полів поточного запису в новий рядок
Ws.Cells [i +2,1]: = ADODataSet1.Fields [0]. AsString;
Ws.Cells [i +2,2]: = ADODataSet1.Fields [1]. AsString;
Ws.Cells [i +2,3]: = ADODataSet1.Fields [2]. AsString;
Ws.Cells [i +2,4]: = ADODataSet1.Fields [3]. AsString;
Ws.Cells [i +2,5]: = ADODataSet1.Fields [4]. AsString;
Ws.Cells [i +2,6]: = ADODataSet1.Fields [5]. AsString;
ADODataSet1.Next;
end;
Як і в попередньому випадку, нам слід змінити розмір колонок на аркуші робочої книги, щоб коректно відобразити містяться в них дані:
/ / Змінюємо ширину колонок
Xl.Columns [1]. ColumnWidth: = Xl.Columns [1]. ColumnWidth +5;
Xl.Columns [2]. ColumnWidth: = Xl.Columns [2]. ColumnWidth +5;
Xl.Columns [3]. ColumnWidth: = Xl.Columns [3]. ColumnWidth +5;
Xl.Columns [4]. ColumnWidth: = Xl.Columns [4]. ColumnWidth +5;
Xl.Columns [5]. ColumnWidth: = Xl.Columns [5]. ColumnWidth +5;
Xl.Columns [6]. ColumnWidth: = Xl.Columns [6]. ColumnWidth +5;
Тепер нам потрібно зберегти документ, придушивши при цьому виведення діагностичних повідомлень Excel. Як і в Word, Excel додаток може бути запущено віддалено, і в цьому випадку користувач також може не мати можливості взаємодіяти з діалоговими вікнами Excel:
/ / Придушуємо висновок діагностичних повідомлень
Xl.DisplayAlerts: = false;
/ / Зберігаємо документ
Wb.SaveAs ('D: \ SOT \ Custrep.xls');
Нарешті, нам слід закрити Excel і звільнити ресурси:
/ / Закриваємо Excel і звільняємо ресурси
Xl.Quit;
Xl: = Unassigned;
Додавання рядка з новими записами в базу даних.
procedure TForm1.Button6Click (Sender: TObject);
begin
with form1.ADOQuery2 do begin
/ / Close; / / закрити файл-результат виконання попереднього запиту
SQL.Clear; / / видалити текст попереднього запиту
/ / Записуємо новий запит у властивість SQL
SQL.Add ('INSERT INTO Адмін (Адмін, ПІБ, Адреса, Ставка) VALUES ("Annie", "Бойко А.К.", "засекречена:)", 1000 );');
ExecSQL;
end;
Так само програма має можливість виконувати набрані запити (Рис
Код програми наведений в додатках В.

ВИСНОВОК
В ході даної курсової роботи була розроблена автоматизована інформаційно-довідкова система зберігання і обробки інформації комп'ютерного клубу, яка сприяє швидкому пошуку необхідних даних при мінімальних витратах часу, а також програмна реалізація системи, в основі якої лежить проектування предметної області та логічної схеми БД, що є інформаційним ресурсом, що розробляється.
Для вирішення сучасних проблем застосовуються сучасні методи їх вирішення. Проблема методів управління в організаціях будь-яких форм власності передбачає використання системи управління базами даних для прийняття рішень на основі ефективного використання інформаційного ресурсу, що дозволяє отримати велику економічну віддачу і вирішувати завдання планування і управління з використанням сучасних інформаційних технологій.
Добре спроектована система може розширюватися із зростанням інформаційних потреб користувачів і при цьому зберігає вже існуючу інформацію. Сучасні методи проектування припускають в якості першого етапу проектування розробку инфологической моделі предметної області. Розроблена в курсовому проекті инфологическая схема дозволяє усвідомити структуру предметної області з метою відображення її логічної схеми в базі даних.
При проектуванні інформаційних систем використання реляційної моделі бази даних є найбільш підходящим методом. Нормалізація відносин розробленої бази даних дозволила усунути помилки внесення, видалення, оновлення, дублювання даних, що особливо важливо при роботі з базою даних користувачів непрофесіоналів. Практична реалізація інформаційної системи виконана з використанням СУБД Access, однак наведені в роботі програми створення таблиць засобами SQL дозволяють реалізувати розробку в іншому комерційному пакеті реляційного типу, де крім мови запитів використовується мова визначення даних для створення базових таблиць.
Таким чином, шляхом автоматизації додатків Microsoft Office ми можемо створювати складні звіти, що містять таблиці, діаграми, обчислювані значення, так само як і використовувати для цієї мети інші можливості Microsoft Office (наприклад, сервіси побудови зведених таблиць).
Розроблена база даних є закінченим програмним продуктом для підтримки інформаційних потреб і може бути легко розширена при зміні інформаційних потреб користувача.

СПИСОК ЛІТЕРАТУРИ
1. Буслік М.М. Моделі і структури даних.
2. Мартін Дж. Організація баз даних в обчислювальних сістемах.-М.: Світ, 1980.-608с.
3. Глушаков С.В., Мельников І.В. Бази даних, включаючи SQL2 і SQL SERVER: Підручник для вузов.-Харків.: Фоліо ,2000-250 с.
4. Вейскас Дж. Ефективна робота з Access.-СПб: Пітер.1997-848с.
5. Боуман Дж., Емерсон С. Дарновскі М. Практічесское посібник з SQL.-К: Діалектика ,1998-565с.
6. Дейт К. Введення в системи баз даних .- 6-е вид.-К: Діалектика, 1998.-784с.
7. Холігверт, Джарод, Баттерфілд, Ден, Сворт, Боб, і ін С + + Builder 5. Керівництво розробника, тому 2. Складні питання програмування: Пер. з англ. - М.: Видавничий будинок "Вільямс", 2001. - 832 с.: Іл. - Хрон. тит. англ.
8. Архангельський А.Я. Прийоми програмування в Delphi. Вид. 2-е, пере роб. і доп. - М.: ТОВ «Біном-Пресс», 2004 р. - 848 с.: Іл.

 
Додаток В
Код програми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComObj, ActiveX, DB, ADODB, StdCtrls, Grids, DBGrids, ComCtrls,
OleServer, ExcelXP;
type
TForm1 = class (TForm)
Report_Word: TButton;
Report_Excel: TButton;
CreatePivotTable: TButton;
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
RadioButton1: TRadioButton;
ComboBox1: TComboBox;
RadioButton2: TRadioButton;
ComboBox2: TComboBox;
DBGrid2: TDBGrid;
ADOQuery1: TADOQuery;
DataSource2: TDataSource;
Select: TMemo;
Button1: TButton;
DBGrid3: TDBGrid;
DataSource3: TDataSource;
TabSheet4: TTabSheet;
ADOQuery2: TADOQuery;
DataSource4: TDataSource;
DBGrid4: TDBGrid;
Button4: TButton;
ADODataSet3: TADODataSet;
Button5: TButton;
TabSheet5: TTabSheet;
DBGrid5: TDBGrid;
DataSource5: TDataSource;
Button6: TButton;
procedure Report_WordClick (Sender: TObject);
procedure Report_ExcelClick (Sender: TObject);
procedure CreatePivotTableClick (Sender: TObject);
procedure RadioButton1Click (Sender: TObject);
procedure ComboBox1Click (Sender: TObject);
procedure RadioButton2Click (Sender: TObject);
procedure ComboBox2Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
procedure Button4Click (Sender: TObject);
procedure Button5Click (Sender: TObject);
procedure Button6Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
Wd, Doc, Rng, Tbl, Xl, Wb, Ws, Ch, Z: Variant;
implementation
{$ R *. dfm}
procedure TForm1.Report_WordClick (Sender: TObject);
var I, Rcnt: integer;
begin
/ / Відкриваємо базу даних і підраховуємо кількість записів
ADODataSet1.Open;
Rcnt: = ADODataSet1.RecordCount;
/ / Запускаємо MS Word
wd: = CreateOleObject ('Word.Application');
/ / Відображаємо на екрані вікно MS Word
wd.Visible: = True;
/ / Створюємо новий документ
wd.Documents.Add;
Doc: = wd.Documents.Item (1);
/ / Додаємо новий абзац
Doc.Paragraphs.Add;
/ / Міняємо його стиль
Doc.Paragraphs.Item (1). Style: = 'Заголовок 1';
/ / Створюємо заголовок звіту
Rng: = Doc.Range (0);
Rng.InsertBefore ('Центр даних');
/ / Створюємо заголовки колонок
Doc.Paragraphs.Add;
Rng.InsertAfter ('Комп: Гравець: Дата: Тривалість: Код послуги: Адмін');
/ / Переміщаємося на перший запис набору даних
ADODataSet1.First;
for I: = 1 to Rcnt do begin
/ / Додаємо новий абзац
Doc.Paragraphs.Add;
/ / Додаємо поля з поточного запису в новий абзац
Rng.InsertAfter (ADODataSet1.Fields [0]. AsString +':'+
ADODataSet1.Fields [1]. ASString +':'+
ADODataSet1.Fields [2]. AsString +':'+
ADODataSet1.Fields [3]. ASString +':'+
ADODataSet1.Fields [4]. ASString +':'+
ADODataSet1.Fields [5]. ASString);
ADODataSet1.Next;
end;
/ / Перетворюємо текст у таблицю
Rng: = Doc.Range (Doc.Paragraphs.Item (3). Range.Start, Doc.Paragraphs.Item (Rcnt +3). Range.End);
Tbl: = Rng.ConvertToTable (':', Rcnt, 6);
/ / Змінюємо розміри колонок таблиці
Tbl.Columns.Item (1). Width: = Tbl.Columns.Item (1). Width-30;
Tbl.Columns.Item (2). Width: = Tbl.Columns.Item (2). Width +20;
Tbl.Columns.Item (3). Width: = Tbl.Columns.Item (3). Width-3;
Tbl.Columns.Item (4). Width: = Tbl.Columns.Item (4). Width +20;
Tbl.Columns.Item (5). Width: = Tbl.Columns.Item (5). Width-5;
Tbl.Columns.Item (6). Width: = Tbl.Columns.Item (6). Width +5;
/ / Придушуємо висновок діагностичних повідомлень
Wd.DisplayAlerts: = False;
/ / Зберігаємо документ
Doc.SaveAs ('D: \ SOT \ Custrep.doc');
/ / Закриваємо Word і звільняємо ресурси
/ / Wd.Quit;
Wd: = Unassigned;
end;
procedure TForm1.Report_ExcelClick (Sender: TObject);
var I, Rcnt: integer;
begin
/ / Відкриваємо базу даних і підраховуємо кількість записів
ADODataSet1.Open;
Rcnt: = ADODataSet1.RecordCount;
/ / Запускаємо Microsoft Excel
Xl: = CreateOleObject ('Excel.Application');
/ / Відображаємо вікно Microsoft Excel
Xl.Visible: = True;
/ / Створюємо робочу книгу
Xl.WorkBooks.Add;
Wb: = XL.WorkBooks [1];
Ws: = Wb.WorkSheets [1];
Ws.Name: = 'Центр даних';
/ / Створюємо заголовок звіту
Ws.Cells [1,1]: = 'Центр даних';
Ws.Cells [1,1]. Font.Bold: = True;
Ws.Cells [1,1]. Font.Size: = 16;
Ws.Cells [2,1]: = 'Комп';
Ws.Cells [2,2]: = "Гравець";
Ws.Cells [2,3]: = 'Дата';
Ws.Cells [2,4]: = 'Тривалість';
Ws.Cells [2,5]: = 'Код послуги';
Ws.Cells [2,6]: = 'Адмін';
for I: = 1 to 6 do
Ws.Cells [2, i]. Font.Bold: = True;
/ / Переміщаємося на перший запис набору даних
ADODataSet1.First;
for I: = 1 to Rcnt do
begin
/ / Додаємо значення полів поточного запису в новий рядок
Ws.Cells [i +2,1]: = ADODataSet1.Fields [0]. AsString;
Ws.Cells [i +2,2]: = ADODataSet1.Fields [1]. AsString;
Ws.Cells [i +2,3]: = ADODataSet1.Fields [2]. AsString;
Ws.Cells [i +2,4]: = ADODataSet1.Fields [3]. AsString;
Ws.Cells [i +2,5]: = ADODataSet1.Fields [4]. AsString;
Ws.Cells [i +2,6]: = ADODataSet1.Fields [5]. AsString;
ADODataSet1.Next;
end;
/ / Змінюємо ширину колонок
Xl.Columns [1]. ColumnWidth: = Xl.Columns [1]. ColumnWidth +5;
Xl.Columns [2]. ColumnWidth: = Xl.Columns [2]. ColumnWidth +5;
Xl.Columns [3]. ColumnWidth: = Xl.Columns [3]. ColumnWidth +5;
Xl.Columns [4]. ColumnWidth: = Xl.Columns [4]. ColumnWidth +5;
Xl.Columns [5]. ColumnWidth: = Xl.Columns [5]. ColumnWidth +5;
Xl.Columns [6]. ColumnWidth: = Xl.Columns [6]. ColumnWidth +5;
/ / Придушуємо висновок діагностичних повідомлень
Xl.DisplayAlerts: = false;
/ / Зберігаємо документ
Wb.SaveAs ('D: \ SOT \ Custrer.xls');
/ / Закриваємо Excel і звільняємо ресурси
/ / Xl.Quit;
Xl: = Unassigned;
end;
procedure TForm1.CreatePivotTableClick (Sender: TObject);
var
WB, PC, PT: Variant;
const
/ / Константи Excel
xlExternal = $ 00000002;
xlCmdSql = $ 00000002;
xlColumnField = $ 00000002;
xlDataField = $ 00000004;
xlPageField = $ 00000003;
xlRowField = $ 00000001;
begin
/ / ADODataSet2.Open;
/ / Запускаємо Microsoft Excel
Xl: = CreateOleObject ('Excel.Application');
/ / Робимо вікно Excel дивись
Xl.Visible: = true;
/ / Створюємо одну робочу книгу з одним аркушем
Xl.WorkBooks.Add (1);
Wb: = Xl.WorkBooks [1];
Ws: = Wb.WorkSheets [1];
/ / Створюємо кеш для зберігання даних
PC: = WB.PivotCaches.Add (xlExternal);
/ / Вибираємо джерело даних і текст запиту
PC.Connection: = 'OLEDB; Provider = Microsoft.Jet.OLEDB.4.0;' +
'Data Source = D: \ SOT \ club.mdb';
PC.CommandType: = xlCmdSql;
PC.CommandText: = 'SELECT Гравець, Номер_компа,' + 'Адмін, Код_услугі, Ціна FROM 01Cost_more_5';
/ / Створюємо зведену таблицю
PC.CreatePivotTable (WB.Worksheets [1]. Cells [1,1], 'PivotTable1');
PT: = WB.Worksheets [1]. PivotTables ('PivotTable1');
/ / Вказуємо розташування осей і підсумовуємо дані
PT.PivotFields ("Гравець"). Orientation: = xlRowField;
PT.PivotFields ("Гравець"). Position: = 1;
PT.PivotFields ('Номер_компа'). Orientation: = xlRowField;
PT.PivotFields ('Номер_компа'). Position: = 2;
PT.PivotFields ('Адмін'). Orientation: = xlPageField;
PT.PivotFields ('Код_услугі'). Orientation: = xlColumnField;
PT.PivotFields ('Ціна'). Orientation: = xlDataField;
WB.Worksheets [1]. Columns [2]. ColumnWidth: = 15;
WB.Worksheets [1]. Columns [1]. ColumnWidth: = 20;
end;
procedure TForm1.RadioButton1Click (Sender: TObject);
var i: integer;
begin
ADOConnection1.GetTableNames (ComboBox1.Items);
for i: = Combobox1.Items.Count-1 downto 0 do
if Pos (0 ", Combobox1.Items [i])> 0 then Combobox1.Items.Delete (i);
for i: = Combobox1.Items.Count-1 downto 0 do
if Pos ('1 ', Combobox1.Items [i])> 0 then Combobox1.Items.Delete (i);
for i: = Combobox1.Items.Count-1 downto 0 do
if Pos ('2 ', Combobox1.Items [i])> 0 then Combobox1.Items.Delete (i);
end;
procedure TForm1.ComboBox1Click (Sender: TObject);
begin
if ADOTable1.Active then ADOTable1.Active: = False;
ADOTable1.TableName: = ComboBox1.Text; ADOTable1.Active: = True;
TabSheet1.Caption: = ComboBox1.Text;
end;
procedure TForm1.RadioButton2Click (Sender: TObject);
var i: integer;
begin
ADOConnection1.GetTableNames (ComboBox2.Items);
for i: = Combobox2.Items.Count-1 downto 0 do
if Pos ('Адмін', Combobox2.Items [i])> 0 then Combobox2.Items.Delete (i);
for i: = Combobox2.Items.Count-1 downto 0 do
if Pos ('Дані', Combobox2.Items [i])> 0 then Combobox2.Items.Delete (i);
for i: = Combobox2.Items.Count-1 downto 0 do
if Pos ('Інфо гравця ", Combobox2.Items [i])> 0 then Combobox2.Items.Delete (i);
for i: = Combobox2.Items.Count-1 downto 0 do
if Pos ('Комп', Combobox2.Items [i])> 0 then Combobox2.Items.Delete (i);
for i: = Combobox2.Items.Count-1 downto 0 do
if Pos ('Послуги', Combobox2.Items [i])> 0 then Combobox2.Items.Delete (i);
for i: = Combobox2.Items.Count-1 downto 0 do
if Pos ('~', Combobox2.Items [i])> 0 then Combobox2.Items.Delete (i);
end;
procedure TForm1.ComboBox2Click (Sender: TObject);
begin
if ADOTable1.Active then ADOTable1.Active: = False;
ADOTable1.TableName: = ComboBox2.Text; ADOTable1.Active: = True;
TabSheet1.Caption: = ComboBox2.Text;
end;
procedure TForm1.Button1Click (Sender: TObject);
begin
if ADOQuery2.Active then ADOQuery2.Active: = False;
ADOQuery2.SQL: = Select.Lines; ADOQuery2.Active: = True;
end;
procedure TForm1.Button2Click (Sender: TObject);
begin
if ADOTable1.Active then ADOTable1.Active: = False;
ADOTable1.TableName: = ComboBox1.Text; ADOTable1.Active: = True;
TabSheet1.Caption: = ComboBox1.Text;
end;
procedure TForm1.Button4Click (Sender: TObject);
{Var
fam: string [30];
begin
fam: = InputBox ('Вибірка інформації з БД',
'Вкажіть прізвище і натисніть OK.','');
if fam <>''/ / користувач ввів прізвище
then}
begin
with form1.ADOQuery2 do begin
Close; / / закрити файл-результат виконання попереднього запиту
SQL.Clear; / / видалити текст попереднього запиту
/ / Записуємо новий запит у властивість SQL
SQL.Add ('SELECT Адмін, ПІБ, Ставка');
SQL.Add ('FROM Адмін');
Open; / / активізуємо виконання запиту
end;
{If ADOQuery2.RecordCount <> 0 then
DataSource1.DataSet: = ADOQuery2 / / показати рез-т виконання запиту
else begin
ShowMessage ('В БД немає записів, які відповідають критерію запиту.');
DataSource1.DataSet: = ADOTable1;
end;}
end;
procedure TForm1.Button5Click (Sender: TObject);
var I, Rcnt: integer;
begin
/ / Відкриваємо базу даних і підраховуємо кількість записів
ADODataSet3.Open;
Rcnt: = ADODataSet3.RecordCount;
/ / Запускаємо Microsoft Excel
Xl: = CreateOleObject ('Excel.Application');
/ / Відображаємо вікно Microsoft Excel
Xl.Visible: = True;
/ / Створюємо робочу книгу
Xl.WorkBooks.Add;
Wb: = XL.WorkBooks [1];
Ws: = Wb.WorkSheets [1];
Ws.Name: = 'Адмін';
/ / Створюємо заголовок звіту
Ws.Cells [1,1]: = 'Адмін';
Ws.Cells [1,1]. Font.Bold: = True;
Ws.Cells [1,1]. Font.Size: = 16;
Ws.Cells [2,1]: = 'Адмін';
Ws.Cells [2,2]: = 'ПІБ';
Ws.Cells [2,3]: = 'Адреса';
Ws.Cells [2,4]: = 'Ставка';
for I: = 1 to 4 do
Ws.Cells [2, i]. Font.Bold: = True;
/ / Переміщаємося на перший запис набору даних
ADODataSet3.First;
for I: = 1 to Rcnt do
begin
/ / Додаємо значення полів поточного запису в новий рядок
Ws.Cells [i +2,1]: = ADODataSet3.Fields [0]. AsString;
Ws.Cells [i +2,2]: = ADODataSet3.Fields [1]. AsString;
Ws.Cells [i +2,3]: = ADODataSet3.Fields [2]. AsString;
Ws.Cells [i +2,4]: = ADODataSet3.Fields [3]. AsString;
ADODataSet3.Next;
end;
/ / Змінюємо ширину колонок
Xl.Columns [1]. ColumnWidth: = Xl.Columns [1]. ColumnWidth +5;
Xl.Columns [2]. ColumnWidth: = Xl.Columns [2]. ColumnWidth +5;
Xl.Columns [3]. ColumnWidth: = Xl.Columns [3]. ColumnWidth +5;
Xl.Columns [4]. ColumnWidth: = Xl.Columns [4]. ColumnWidth +5;
/ / Придушуємо висновок діагностичних повідомлень
Xl.DisplayAlerts: = false;
/ / Зберігаємо документ
Wb.SaveAs ('D: \ SOT \ Custrer2.xls');
/ / Закриваємо Excel і звільняємо ресурси
/ / Xl.Quit;
Xl: = Unassigned;
end;
procedure TForm1.Button6Click (Sender: TObject);
begin
with form1.ADOQuery2 do begin
/ / Close; / / закрити файл-результат виконання попереднього запиту
SQL.Clear; / / видалити текст попереднього запиту
/ / Записуємо новий запит у властивість SQL
SQL.Add ('INSERT INTO Адмін (Адмін, ПІБ, Адреса, Ставка) VALUES ("Annie", "Бойко А.К.", "засекречена:)", 1000 );');
ExecSQL;
/ / Активізуємо виконання запиту
end;
end;
end.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
123кб. | скачати


Схожі роботи:
Бізнес-план комп`ютерного клубу
Бізнес план комп`ютерного клубу
Розробка бізнес плану комп`ютерного клубу
Бізнес план комп`ютерного клубу Chicago
Аналіз з менеджменту на прикладі комп`ютерного клубу ТОВ Arsenal Club
Система функціонального комп`ютерного моніторингу
Система функціонального комп`ютерного моніторингу при тяжкій механічній травмі
Система елективних курсів з інформатики для передпрофільне підготовки Комп`ютерна та інформаційна
Субкультура комп`ютерного андеграунду
© Усі права захищені
написати до нас